package com.rybbaby.tss.platform.sysFileUseLog.entity;

import com.rybbaby.tss.core.utils.StringUtils;
import com.rybbaby.tss.platform.sysFiles.entity.SysFiles;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;

/**
 * @description 文件使用日志
 * 
 * @author 谢进伟
 * 
 * @createDate 2016-11-23 下午11:04:17
 */
@Entity
@Table(name = "sys_file_use_log")
@DynamicUpdate(true)
@DynamicInsert(true)
public class SysFileUseLog implements Serializable {
	
	private static final long serialVersionUID = 52565571365502L;
	
	/** 主键 **/
	private String id;
	/** 文件Id **/
	private String fileId;
	/** 业务表表名 **/
	private String businessTableName;
	/** 业务表Id **/
	private String businessId;
	/** 业务表字段名 **/
	private String businessField;
	/** 创建时间 **/
	private java.sql.Timestamp createTime;
	/** 创建人Id **/
	private String createUserId;
	/** 链接target值 **/
	private String target;
	/** 权重 **/
	private Integer weight;
	/** 描述 **/
	private String remark;
	/** 尺寸 **/
	private String size;
	/** 版本 **/
	private Integer version;
	/** 文件Id **/
	private SysFiles file;
	
	/**
	 * 方法: 取得文件Id
	 *
	 * @return SysFiles 文件Id
	 */
	@JoinColumn(name = "fileId" , insertable = false , updatable = false)
	@ManyToOne(fetch = FetchType.LAZY , targetEntity = SysFiles.class)
	public SysFiles getFile() {
		return this.file;
	}
	
	/**
	 * 方法: 设置文件Id
	 *
	 * @param file 文件Id
	 */
	public void setFile(SysFiles file) {
		this.file = file;
	}
	
	/**
	 * 方法: 取得主键
	 *
	 * @return java.lang.String 主键
	 */
	@Id
	@GeneratedValue(generator = "sys_file_use_logIDGenerator" , strategy = GenerationType.AUTO)
	@GenericGenerator(name = "sys_file_use_logIDGenerator" , strategy = "uuid")
	@Column(name = "id", nullable= false, length = 32)
	public String getId() {
		return this.id;
	}
	
	/**
	 * 方法: 设置主键
	 *
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}
	
	/**
	 * 方法: 取得文件Id
	 *
	 * @return java.lang.String 文件Id
	 */
	@Column(name = "fileId", nullable= true, length = 32)
	public String getFileId() {
		return this.fileId;
	}
	
	/**
	 * 方法: 设置文件Id
	 *
	 * @param fileId 文件Id
	 */
	public void setFileId(String fileId) {
		this.fileId = StringUtils.isBlank(fileId) ? null : fileId;
	}
	
	/**
	 * 方法: 取得业务表表名
	 *
	 * @return java.lang.String 业务表表名
	 */
	@Column(name = "businessTableName", nullable= true, length = 50)
	public String getBusinessTableName() {
		return this.businessTableName;
	}
	
	/**
	 * 方法: 设置业务表表名
	 *
	 * @param businessTableName 业务表表名
	 */
	public void setBusinessTableName(String businessTableName) {
		this.businessTableName = businessTableName;
	}
	
	/**
	 * 方法: 取得业务表Id
	 *
	 * @return java.lang.String 业务表Id
	 */
	@Column(name = "businessId", nullable= true, length = 32)
	public String getBusinessId() {
		return this.businessId;
	}
	
	/**
	 * 方法: 设置业务表Id
	 *
	 * @param businessId 业务表Id
	 */
	public void setBusinessId(String businessId) {
		this.businessId = businessId;
	}
	
	/**
	 * 方法: 取得业务表字段名
	 *
	 * @return java.lang.String 业务表字段名
	 */
	@Column(name = "businessField", nullable= true, length = 50)
	public String getBusinessField() {
		return this.businessField;
	}
	
	/**
	 * 方法: 设置业务表字段名
	 *
	 * @param businessField 业务表字段名
	 */
	public void setBusinessField(String businessField) {
		this.businessField = businessField;
	}
	
	/**
	 * 方法: 取得创建时间
	 *
	 * @return java.sql.Timestamp 创建时间
	 */
	@Column(name = "createTime", nullable= true, length = 19)
	public java.sql.Timestamp getCreateTime() {
		return this.createTime;
	}
	
	/**
	 * 方法: 设置创建时间
	 *
	 * @param createTime 创建时间
	 */
	public void setCreateTime(java.sql.Timestamp createTime) {
		this.createTime = createTime;
	}
	
	/**
	 * 方法: 取得创建人Id
	 *
	 * @return java.lang.String 创建人Id
	 */
	@Column(name = "createUserId", nullable= true, length = 32)
	public String getCreateUserId() {
		return this.createUserId;
	}
	
	/**
	 * 方法: 设置创建人Id
	 *
	 * @param createUserId 创建人Id
	 */
	public void setCreateUserId(String createUserId) {
		this.createUserId = createUserId;
	}
	
	/**
	 * 方法: 取得链接target值
	 *
	 * @return java.lang.String 链接target值
	 */
	@Column(name = "target", nullable= true, length = 20)
	public String getTarget() {
		return this.target;
	}
	
	/**
	 * 方法: 设置链接target值
	 *
	 * @param target 链接target值
	 */
	public void setTarget(String target) {
		this.target = target;
	}
	
	/**
	 * 方法: 取得权重
	 *
	 * @return java.lang.Integer 权重
	 */
	@Column(name = "weight", nullable= true, length = 11)
	public Integer getWeight() {
		return this.weight;
	}
	
	/**
	 * 方法: 设置权重
	 *
	 * @param weight 权重
	 */
	public void setWeight(Integer weight) {
		this.weight = weight;
	}
	
	/**
	 * 方法: 取得描述
	 *
	 * @return java.lang.String 描述
	 */
	@Column(name = "remark", nullable= true, length = 255)
	public String getRemark() {
		return this.remark;
	}
	
	/**
	 * 方法: 设置描述
	 *
	 * @param remark 描述
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}
	
	/**
	 * 方法: 取得尺寸
	 *
	 * @return java.lang.String 尺寸
	 */
	@Column(name = "size", nullable= true, length = 20)
	public String getSize() {
		return this.size;
	}
	
	/**
	 * 方法: 设置尺寸
	 *
	 * @param size 尺寸
	 */
	public void setSize(String size) {
		this.size = size;
	}
	
	/**
	 * 方法: 取得版本
	 *
	 * @return java.lang.Integer 版本
	 */
    @Version
	@Column(name = "version", nullable= true, length = 11)
	public Integer getVersion() {
		return this.version;
	}
	
	/**
	 * 方法: 设置版本
	 *
	 * @param version 版本
	 */
	public void setVersion(Integer version) {
		this.version = version;
	}
}